#ifndef CONVERSION_HPP
#define CONVERSION_HPP

#include <dislib.h>
#include <complex>
#include <iostream>
#include <cstdlib>

typedef std::complex<double> complexd;

using namespace std;

class Vector {
    int n;
    complexd* vec;
public:
    Vector();
    Vector(complexd* begin, complexd* end);
    Vector(int l, complexd*);
    Vector(const Vector &);
    ~Vector();

    complexd operator[](int);
    Vector operator=(Vector);
    friend ostream& operator<<(ostream &, Vector &);
};

class Conversion {
    int m;
    Vector* vec;

    double normal_dis_gen();
public:
    Conversion(int m, int n, complexd*);
    Conversion(const Conversion &);
    ~Conversion();

    void doNoize();

    Vector operator[](int);
    friend ostream& operator<<(ostream &, Conversion &);
};

#endif // CONVERSION_HPP
